#pragma once

#define VISIT_PROCS_WININET(visit) \
	visit(DispatchAPICall, jmpaddr) \
	visit(AppCacheCheckManifest, jmpaddr) \
	visit(AppCacheCloseHandle, jmpaddr) \
	visit(AppCacheCreateAndCommitFile, jmpaddr) \
	visit(AppCacheDeleteGroup, jmpaddr) \
	visit(AppCacheDeleteIEGroup, jmpaddr) \
	visit(AppCacheDuplicateHandle, jmpaddr) \
	visit(AppCacheFinalize, jmpaddr) \
	visit(AppCacheFreeDownloadList, jmpaddr) \
	visit(AppCacheFreeGroupList, jmpaddr) \
	visit(AppCacheFreeIESpace, jmpaddr) \
	visit(AppCacheFreeSpace, jmpaddr) \
	visit(AppCacheGetDownloadList, jmpaddr) \
	visit(AppCacheGetFallbackUrl, jmpaddr) \
	visit(AppCacheGetGroupList, jmpaddr) \
	visit(AppCacheGetIEGroupList, jmpaddr) \
	visit(AppCacheGetInfo, jmpaddr) \
	visit(AppCacheGetManifestUrl, jmpaddr) \
	visit(AppCacheLookup, jmpaddr) \
	visit(CommitUrlCacheEntryA, jmpaddr) \
	visit(CommitUrlCacheEntryBinaryBlob, jmpaddr) \
	visit(CommitUrlCacheEntryW, jmpaddr) \
	visit(CreateMD5SSOHash, jmpaddr) \
	visit(CreateUrlCacheContainerA, jmpaddr) \
	visit(CreateUrlCacheContainerW, jmpaddr) \
	visit(CreateUrlCacheEntryA, jmpaddr) \
	visit(CreateUrlCacheEntryExW, jmpaddr) \
	visit(CreateUrlCacheEntryW, jmpaddr) \
	visit(CreateUrlCacheGroup, jmpaddr) \
	visit(DeleteIE3Cache, jmpaddr) \
	visit(DeleteUrlCacheContainerA, jmpaddr) \
	visit(DeleteUrlCacheContainerW, jmpaddr) \
	visit(DeleteUrlCacheEntry, jmpaddr) \
	visit(DeleteUrlCacheEntryA, jmpaddr) \
	visit(DeleteUrlCacheEntryW, jmpaddr) \
	visit(DeleteUrlCacheGroup, jmpaddr) \
	visit(DeleteWpadCacheForNetworks, jmpaddr) \
	visit(DetectAutoProxyUrl, jmpaddr) \
	visit(DllInstall, jmpaddr) \
	visit(FindCloseUrlCache, jmpaddr) \
	visit(FindFirstUrlCacheContainerA, jmpaddr) \
	visit(FindFirstUrlCacheContainerW, jmpaddr) \
	visit(FindFirstUrlCacheEntryA, jmpaddr) \
	visit(FindFirstUrlCacheEntryExA, jmpaddr) \
	visit(FindFirstUrlCacheEntryExW, jmpaddr) \
	visit(FindFirstUrlCacheEntryW, jmpaddr) \
	visit(FindFirstUrlCacheGroup, jmpaddr) \
	visit(FindNextUrlCacheContainerA, jmpaddr) \
	visit(FindNextUrlCacheContainerW, jmpaddr) \
	visit(FindNextUrlCacheEntryA, jmpaddr) \
	visit(FindNextUrlCacheEntryExA, jmpaddr) \
	visit(FindNextUrlCacheEntryExW, jmpaddr) \
	visit(FindNextUrlCacheEntryW, jmpaddr) \
	visit(FindNextUrlCacheGroup, jmpaddr) \
	visit(ForceNexusLookup, jmpaddr) \
	visit(ForceNexusLookupExW, jmpaddr) \
	visit(FreeUrlCacheSpaceA, jmpaddr) \
	visit(FreeUrlCacheSpaceW, jmpaddr) \
	visit(FtpCommandA, jmpaddr) \
	visit(FtpCommandW, jmpaddr) \
	visit(FtpCreateDirectoryA, jmpaddr) \
	visit(FtpCreateDirectoryW, jmpaddr) \
	visit(FtpDeleteFileA, jmpaddr) \
	visit(FtpDeleteFileW, jmpaddr) \
	visit(FtpFindFirstFileA, jmpaddr) \
	visit(FtpFindFirstFileW, jmpaddr) \
	visit(FtpGetCurrentDirectoryA, jmpaddr) \
	visit(FtpGetCurrentDirectoryW, jmpaddr) \
	visit(FtpGetFileA, jmpaddr) \
	visit(FtpGetFileEx, jmpaddr) \
	visit(FtpGetFileSize, jmpaddr) \
	visit(FtpGetFileW, jmpaddr) \
	visit(FtpOpenFileA, jmpaddr) \
	visit(FtpOpenFileW, jmpaddr) \
	visit(FtpPutFileA, jmpaddr) \
	visit(FtpPutFileEx, jmpaddr) \
	visit(FtpPutFileW, jmpaddr) \
	visit(FtpRemoveDirectoryA, jmpaddr) \
	visit(FtpRemoveDirectoryW, jmpaddr) \
	visit(FtpRenameFileA, jmpaddr) \
	visit(FtpRenameFileW, jmpaddr) \
	visit(FtpSetCurrentDirectoryA, jmpaddr) \
	visit(FtpSetCurrentDirectoryW, jmpaddr) \
	visit(GetProxyDllInfo, jmpaddr) \
	visit(GetUrlCacheConfigInfoA, jmpaddr) \
	visit(GetUrlCacheConfigInfoW, jmpaddr) \
	visit(GetUrlCacheEntryBinaryBlob, jmpaddr) \
	visit(GetUrlCacheEntryInfoA, jmpaddr) \
	visit(GetUrlCacheEntryInfoExA, jmpaddr) \
	visit(GetUrlCacheEntryInfoExW, jmpaddr) \
	visit(GetUrlCacheEntryInfoW, jmpaddr) \
	visit(GetUrlCacheGroupAttributeA, jmpaddr) \
	visit(GetUrlCacheGroupAttributeW, jmpaddr) \
	visit(GetUrlCacheHeaderData, jmpaddr) \
	visit(GopherCreateLocatorA, jmpaddr) \
	visit(GopherCreateLocatorW, jmpaddr) \
	visit(GopherFindFirstFileA, jmpaddr) \
	visit(GopherFindFirstFileW, jmpaddr) \
	visit(GopherGetAttributeA, jmpaddr) \
	visit(GopherGetAttributeW, jmpaddr) \
	visit(GopherGetLocatorTypeA, jmpaddr) \
	visit(GopherGetLocatorTypeW, jmpaddr) \
	visit(GopherOpenFileA, jmpaddr) \
	visit(GopherOpenFileW, jmpaddr) \
	visit(HttpAddRequestHeadersA, jmpaddr) \
	visit(HttpAddRequestHeadersW, jmpaddr) \
	visit(HttpCheckDavCompliance, jmpaddr) \
	visit(HttpCloseDependencyHandle, jmpaddr) \
	visit(HttpDuplicateDependencyHandle, jmpaddr) \
	visit(HttpEndRequestA, jmpaddr) \
	visit(HttpEndRequestW, jmpaddr) \
	visit(HttpGetServerCredentials, jmpaddr) \
	visit(HttpGetTunnelSocket, jmpaddr) \
	visit(HttpIndicatePageLoadComplete, jmpaddr) \
	visit(HttpIsHostHstsEnabled, jmpaddr) \
	visit(HttpOpenDependencyHandle, jmpaddr) \
	visit(HttpOpenRequestA, jmpaddr) \
	visit(HttpOpenRequestW, jmpaddr) \
	visit(HttpPushClose, jmpaddr) \
	visit(HttpPushEnable, jmpaddr) \
	visit(HttpPushWait, jmpaddr) \
	visit(HttpQueryInfoA, jmpaddr) \
	visit(HttpQueryInfoW, jmpaddr) \
	visit(HttpSendRequestA, jmpaddr) \
	visit(HttpSendRequestExA, jmpaddr) \
	visit(HttpSendRequestExW, jmpaddr) \
	visit(HttpSendRequestW, jmpaddr) \
	visit(HttpWebSocketClose, jmpaddr) \
	visit(HttpWebSocketCompleteUpgrade, jmpaddr) \
	visit(HttpWebSocketQueryCloseStatus, jmpaddr) \
	visit(HttpWebSocketReceive, jmpaddr) \
	visit(HttpWebSocketSend, jmpaddr) \
	visit(HttpWebSocketShutdown, jmpaddr) \
	visit(IncrementUrlCacheHeaderData, jmpaddr) \
	visit(InternetAlgIdToStringA, jmpaddr) \
	visit(InternetAlgIdToStringW, jmpaddr) \
	visit(InternetAttemptConnect, jmpaddr) \
	visit(InternetAutodial, jmpaddr) \
	visit(InternetAutodialCallback, jmpaddr) \
	visit(InternetAutodialHangup, jmpaddr) \
	visit(InternetCanonicalizeUrlA, jmpaddr) \
	visit(InternetCanonicalizeUrlW, jmpaddr) \
	visit(InternetCheckConnectionA, jmpaddr) \
	visit(InternetCheckConnectionW, jmpaddr) \
	visit(InternetClearAllPerSiteCookieDecisions, jmpaddr) \
	visit(InternetCloseHandle, jmpaddr) \
	visit(InternetCombineUrlA, jmpaddr) \
	visit(InternetCombineUrlW, jmpaddr) \
	visit(InternetConfirmZoneCrossing, jmpaddr) \
	visit(InternetConfirmZoneCrossingA, jmpaddr) \
	visit(InternetConfirmZoneCrossingW, jmpaddr) \
	visit(InternetConnectA, jmpaddr) \
	visit(InternetConnectW, jmpaddr) \
	visit(InternetConvertUrlFromWireToWideChar, jmpaddr) \
	visit(InternetCrackUrlA, jmpaddr) \
	visit(InternetCrackUrlW, jmpaddr) \
	visit(InternetCreateUrlA, jmpaddr) \
	visit(InternetCreateUrlW, jmpaddr) \
	visit(InternetDial, jmpaddr) \
	visit(InternetDialA, jmpaddr) \
	visit(InternetDialW, jmpaddr) \
	visit(InternetEnumPerSiteCookieDecisionA, jmpaddr) \
	visit(InternetEnumPerSiteCookieDecisionW, jmpaddr) \
	visit(InternetErrorDlg, jmpaddr) \
	visit(InternetFindNextFileA, jmpaddr) \
	visit(InternetFindNextFileW, jmpaddr) \
	visit(InternetFortezzaCommand, jmpaddr) \
	visit(InternetFreeCookies, jmpaddr) \
	visit(InternetFreeProxyInfoList, jmpaddr) \
	visit(InternetGetCertByURL, jmpaddr) \
	visit(InternetGetCertByURLA, jmpaddr) \
	visit(InternetGetConnectedState, jmpaddr) \
	visit(InternetGetConnectedStateEx, jmpaddr) \
	visit(InternetGetConnectedStateExA, jmpaddr) \
	visit(InternetGetConnectedStateExW, jmpaddr) \
	visit(InternetGetCookieA, jmpaddr) \
	visit(InternetGetCookieEx2, jmpaddr) \
	visit(InternetGetCookieExA, jmpaddr) \
	visit(InternetGetCookieExW, jmpaddr) \
	visit(InternetGetCookieW, jmpaddr) \
	visit(InternetGetLastResponseInfoA, jmpaddr) \
	visit(InternetGetLastResponseInfoW, jmpaddr) \
	visit(InternetGetPerSiteCookieDecisionA, jmpaddr) \
	visit(InternetGetPerSiteCookieDecisionW, jmpaddr) \
	visit(InternetGetProxyForUrl, jmpaddr) \
	visit(InternetGetSecurityInfoByURL, jmpaddr) \
	visit(InternetGetSecurityInfoByURLA, jmpaddr) \
	visit(InternetGetSecurityInfoByURLW, jmpaddr) \
	visit(InternetGoOnline, jmpaddr) \
	visit(InternetGoOnlineA, jmpaddr) \
	visit(InternetGoOnlineW, jmpaddr) \
	visit(InternetHangUp, jmpaddr) \
	visit(InternetInitializeAutoProxyDll, jmpaddr) \
	visit(InternetLockRequestFile, jmpaddr) \
	visit(InternetOpenA, jmpaddr) \
	visit(InternetOpenUrlA, jmpaddr) \
	visit(InternetOpenUrlW, jmpaddr) \
	visit(InternetOpenW, jmpaddr) \
	visit(InternetQueryDataAvailable, jmpaddr) \
	visit(InternetQueryFortezzaStatus, jmpaddr) \
	visit(InternetQueryOptionA, jmpaddr) \
	visit(InternetQueryOptionW, jmpaddr) \
	visit(InternetReadFile, jmpaddr) \
	visit(InternetReadFileExA, jmpaddr) \
	visit(InternetReadFileExW, jmpaddr) \
	visit(InternetSecurityProtocolToStringA, jmpaddr) \
	visit(InternetSecurityProtocolToStringW, jmpaddr) \
	visit(InternetSetCookieA, jmpaddr) \
	visit(InternetSetCookieEx2, jmpaddr) \
	visit(InternetSetCookieExA, jmpaddr) \
	visit(InternetSetCookieExW, jmpaddr) \
	visit(InternetSetCookieW, jmpaddr) \
	visit(InternetSetDialState, jmpaddr) \
	visit(InternetSetDialStateA, jmpaddr) \
	visit(InternetSetDialStateW, jmpaddr) \
	visit(InternetSetFilePointer, jmpaddr) \
	visit(InternetSetOptionA, jmpaddr) \
	visit(InternetSetOptionExA, jmpaddr) \
	visit(InternetSetOptionExW, jmpaddr) \
	visit(InternetSetOptionW, jmpaddr) \
	visit(InternetSetPerSiteCookieDecisionA, jmpaddr) \
	visit(InternetSetPerSiteCookieDecisionW, jmpaddr) \
	visit(InternetSetStatusCallback, jmpaddr) \
	visit(InternetSetStatusCallbackA, jmpaddr) \
	visit(InternetSetStatusCallbackW, jmpaddr) \
	visit(InternetShowSecurityInfoByURL, jmpaddr) \
	visit(InternetShowSecurityInfoByURLA, jmpaddr) \
	visit(InternetShowSecurityInfoByURLW, jmpaddr) \
	visit(InternetTimeFromSystemTime, jmpaddr) \
	visit(InternetTimeFromSystemTimeA, jmpaddr) \
	visit(InternetTimeFromSystemTimeW, jmpaddr) \
	visit(InternetTimeToSystemTime, jmpaddr) \
	visit(InternetTimeToSystemTimeA, jmpaddr) \
	visit(InternetTimeToSystemTimeW, jmpaddr) \
	visit(InternetUnlockRequestFile, jmpaddr) \
	visit(InternetWriteFile, jmpaddr) \
	visit(InternetWriteFileExA, jmpaddr) \
	visit(InternetWriteFileExW, jmpaddr) \
	visit(IsHostInProxyBypassList, jmpaddr) \
	visit(IsUrlCacheEntryExpiredA, jmpaddr) \
	visit(IsUrlCacheEntryExpiredW, jmpaddr) \
	visit(LoadUrlCacheContent, jmpaddr) \
	visit(ParseX509EncodedCertificateForListBoxEntry, jmpaddr) \
	visit(PrivacyGetZonePreferenceW, jmpaddr) \
	visit(PrivacySetZonePreferenceW, jmpaddr) \
	visit(ReadUrlCacheEntryStream, jmpaddr) \
	visit(ReadUrlCacheEntryStreamEx, jmpaddr) \
	visit(RegisterUrlCacheNotification, jmpaddr) \
	visit(ResumeSuspendedDownload, jmpaddr) \
	visit(RetrieveUrlCacheEntryFileA, jmpaddr) \
	visit(RetrieveUrlCacheEntryFileW, jmpaddr) \
	visit(RetrieveUrlCacheEntryStreamA, jmpaddr) \
	visit(RetrieveUrlCacheEntryStreamW, jmpaddr) \
	visit(RunOnceUrlCache, jmpaddr) \
	visit(SetUrlCacheConfigInfoA, jmpaddr) \
	visit(SetUrlCacheConfigInfoW, jmpaddr) \
	visit(SetUrlCacheEntryGroup, jmpaddr) \
	visit(SetUrlCacheEntryGroupA, jmpaddr) \
	visit(SetUrlCacheEntryGroupW, jmpaddr) \
	visit(SetUrlCacheEntryInfoA, jmpaddr) \
	visit(SetUrlCacheEntryInfoW, jmpaddr) \
	visit(SetUrlCacheGroupAttributeA, jmpaddr) \
	visit(SetUrlCacheGroupAttributeW, jmpaddr) \
	visit(SetUrlCacheHeaderData, jmpaddr) \
	visit(ShowCertificate, jmpaddr) \
	visit(ShowClientAuthCerts, jmpaddr) \
	visit(ShowSecurityInfo, jmpaddr) \
	visit(ShowX509EncodedCertificate, jmpaddr) \
	visit(UnlockUrlCacheEntryFile, jmpaddr) \
	visit(UnlockUrlCacheEntryFileA, jmpaddr) \
	visit(UnlockUrlCacheEntryFileW, jmpaddr) \
	visit(UnlockUrlCacheEntryStream, jmpaddr) \
	visit(UpdateUrlCacheContentPath, jmpaddr) \
	visit(UrlCacheCheckEntriesExist, jmpaddr) \
	visit(UrlCacheCloseEntryHandle, jmpaddr) \
	visit(UrlCacheContainerSetEntryMaximumAge, jmpaddr) \
	visit(UrlCacheCreateContainer, jmpaddr) \
	visit(UrlCacheFindFirstEntry, jmpaddr) \
	visit(UrlCacheFindNextEntry, jmpaddr) \
	visit(UrlCacheFreeEntryInfo, jmpaddr) \
	visit(UrlCacheFreeGlobalSpace, jmpaddr) \
	visit(UrlCacheGetContentPaths, jmpaddr) \
	visit(UrlCacheGetEntryInfo, jmpaddr) \
	visit(UrlCacheGetGlobalCacheSize, jmpaddr) \
	visit(UrlCacheGetGlobalLimit, jmpaddr) \
	visit(UrlCacheReadEntryStream, jmpaddr) \
	visit(UrlCacheReloadSettings, jmpaddr) \
	visit(UrlCacheRetrieveEntryFile, jmpaddr) \
	visit(UrlCacheRetrieveEntryStream, jmpaddr) \
	visit(UrlCacheServer, jmpaddr) \
	visit(UrlCacheSetGlobalLimit, jmpaddr) \
	visit(UrlCacheUpdateEntryExtraData, jmpaddr) \
	visit(UrlZonesDetach, jmpaddr) \
	visit(_GetFileExtensionFromUrl, jmpaddr)

#ifdef PROC_CLASS
PROC_CLASS(wininet, dll, VISIT_PROCS_WININET, VISIT_PROCS_BLANK, VISIT_PROCS_BLANK)
#endif
